package br.gov.mi.corporativo.dominio.boundary.comum.pessoatipointeresse;

import java.util.Date;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import br.gov.mi.corporativo.dominio.boundary.comum.pessoatipointeresse.PessoaTipoInteresseEndPoint;
import br.gov.mi.corporativo.dominio.entidade.comum.PessoaTipoInteresse;

@Path("pessoatipointeresse")
public class PessoaTipoInteresseRestAdapter extends SpringBeanAutowiringSupport {
	
	@Autowired
	private PessoaTipoInteresseEndPoint service;
	
	@GET
	@Produces({MediaType.APPLICATION_JSON})
	public Iterable<PessoaTipoInteresse> recuperarTodos(){
		return service.recuperarTodos();
	}
	
	@GET
	@Path("id/{idPessoaTipoInteresse}")
	@Produces({MediaType.APPLICATION_JSON})
	public PessoaTipoInteresse recuperarPorIdPessoaTipoInteresse(@PathParam("idPessoaTipoInteresse")Long idPessoaTipoInteresse){
		return service.recuperarPorIdPessoaTipoInteresse(idPessoaTipoInteresse);
	}
	
	@GET
	@Path("pessoa/{pessoa}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaTipoInteresse> recuperarPorPessoa(@PathParam("pessoa")Long pessoa){
		return service.recuperarPorPessoa(pessoa);
	}
	
	@GET
	@Path("tipointeresse/{tipoInteresse}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaTipoInteresse> recuperarPorTipoInteresse(@PathParam("tipoInteresse")Long tipoInteresse){
		return service.recuperarPorTipoInteresse(tipoInteresse);
	}
	
	@GET
	@Path("dtinicio/{dtInicio}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaTipoInteresse> recuperarPorDtInicio(@PathParam("dtInicio")Date dtInicio){
		return service.recuperarPorDtInicio(dtInicio);
	}
	
	@GET
	@Path("dttermino/{dtTermino}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaTipoInteresse> recuperarPorDtTermino(@PathParam("dtTermino")Date dtTermino){
		return service.recuperarPorDtTermino(dtTermino);
	}
	
	@GET
	@Path("situacao/{csSituacaoInteresse}")
	@Produces({MediaType.APPLICATION_JSON})
	public List<PessoaTipoInteresse> recuperarPorCsSituacaoInteresse(@PathParam("csSituacaoInteresse")String csSituacaoInteresse){
		return service.recuperarPorCsSituacaoInteresse(csSituacaoInteresse);
	}

}
